﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BLToolkit.DataAccess;
using BLToolkit.Mapping;
using Platform;

namespace Platform.Model
{

    /// <summary>
    /// Lớp biểu diễn việc cân hàng
    /// </summary>

    [TableName("PickingList")]
    public class PickingList : Devsoft.DB.Models.Flat.ModelWithId<PickingList>
    {
        
        /// <summary>
        /// Mã đơn hàng hằng ngày
        /// </summary>
        public int DoId { get; set; }

        /// <summary>
        /// Mã kho hàng
        /// </summary>
        public int StoreId { get; set; }

        /// <summary>
        /// Mã số đơn hàng
        /// </summary>
        public string OrderNo { get; set; }

        /// <summary>
        /// Mã mặt hàng nông phẩm
        /// </summary>
        public int ArtId { get; set; }

        /// <summary>
        /// Khối lượng đặt hàng
        /// </summary>
        public float OrderQty { get; set; }

        /// <summary>
        /// Trọng lượng hiển thị trên cân
        /// </summary>
        public float Gross { get; set; }

        /// <summary>
        /// Trọng lượng thực của hàng (đã trừ đi hao hụt và trọng lượng khay)
        /// </summary>
        public float Net { get; set; }

        /// <summary>
        /// Số khay đựng hàng
        /// </summary>
        public int Package { get; set; }

        /// <summary>
        /// Tổng hao hụt tự nhiên
        /// </summary>
        public float NLoss { get; set; }

        /// <summary>
        /// Tổng hao hụt qua sơ chế
        /// </summary>
        public float PLoss { get; set; }

        /// <summary>
        /// Trạng thái cân
        /// </summary>
        public bool Status { get; set; }

        /// <summary>
        /// Thời gian cập nhật cuối cùng
        /// </summary>
        public DateTime LastUpdated { get; set; }
        
        /// <summary>
        /// Thông tin về hóa đơn
        /// </summary>
        [Association(ThisKey = "DoId", OtherKey = "Id", CanBeNull = false)]
        public DailyOrder DailyOrder { get; set; }

        /// <summary>
        /// Thông tin về kho hàng trong lần cân
        /// </summary>
        [Association(ThisKey = "StoreId", OtherKey = "Id", CanBeNull = false)]
        public Store StoreName { get; set; }

        /// <summary>
        /// Thông tin về mặt hàng cân
        /// </summary>
        [Association(ThisKey = "ArtId", OtherKey = "Id", CanBeNull = false)]
        public Article Article { get; set; }

        /// <summary>
        /// Danh sách thông tin cân
        /// </summary>
        [Association(ThisKey = "Id", OtherKey = "PickingId", CanBeNull = false)]
        public List<PickingDetail> PickingDetails { get; set; }
        //
        //public int PickingId { get; set; }

    }
}
